home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / pc / ABUSESRC.ZIP / AbuseSrc / macabuse / src / stack.c < prev    next >
Encoding:
C/C++ Source or Header  |  1997-05-20  |  524 b   |  27 lines

  1. #ifndef __STACK_HPP_
  2. #define __STACK_HPP_
  3.  
  4. template <class T> grow_stack        // stack does not shrink
  5.   public :
  6.   T **sdata;
  7.   long ssize,son;
  8.  
  9.   grow_stack() { sdata=NULL; ssize=0; son=0; }
  10.   void *push(T *data) 
  11.   { if (son>=ssize) 
  12.     { ssize+=0x100;
  13.       sdata=(T **)jrealloc(sdata,sizeof(T *)*ssize,"stack");
  14.     }
  15.     sdata[son++]=data;
  16.   }
  17.    
  18.   T *pop(long total) 
  19.   { if (son>total) { lbreak("stack underflow\n"); exit(0); }
  20.     son-=total;
  21.     return sdata[son];
  22.   }
  23. } ;
  24.  
  25. #endif
  26.